/**
 * 获取系统配置工具
 * 统一处理从外部配置文件中获取配置的逻辑
 */

/**
 * 获取登录模式配置
 * @returns {Object} 登录模式配置对象，包含showAccount和showPhone两个布尔值
 */
export function getLoginMode() {
  // 从全局配置获取登录模式，默认为账户登录
  const loginMode = window.__APP_CONFIG?.LOGIN_MODE || 'account'

  // 将配置字符串转换为对象
  const result = {
    showAccount: false,
    showPhone: false,
  }

  // 解析配置值
  if (loginMode === 'account') {
    result.showAccount = true
  } else if (loginMode === 'phone') {
    result.showPhone = true
  } else if (loginMode === 'account,phone' || loginMode === 'phone,account') {
    result.showAccount = true
    result.showPhone = true
  } else {
    // 无效配置，默认显示账户登录
    console.warn('配置的登录模式无效，使用默认的账户登录模式')
    result.showAccount = true
  }

  return result
}

/**
 * 获取API基础URL
 * @returns {string} API基础URL
 */
export function getApiBaseUrl() {
  return window.__APP_CONFIG?.API_BASE_URL || '/api'
}

/**
 * 判断当前是否为开发环境
 * @returns {boolean} 是否为开发环境
 */
export function isDevelopment() {
  // 如果配置文件中有判断方法，则使用它
  if (typeof window.__APP_CONFIG?.isDevEnvironment === 'function') {
    return window.__APP_CONFIG.isDevEnvironment()
  }

  // 否则根据域名判断
  const hostname = window.location.hostname
  return hostname === 'localhost' || hostname === '127.0.0.1'
}

export default {
  getLoginMode,
  getApiBaseUrl,
  isDevelopment,
}
